开发者说 | 看不见的“传感器”——高精度地图
在无人车自动驾驶的过程中,还有一种看不见、摸不到的“传感器”也在发挥着巨大作用,它就是高精度电子地图。
高精度电子地图也称为高分辨率地图(HD Map,High Definition Map),是一种专门为无人驾驶服务的地图。与传统导航地图不同的是,高精度地图除了能提供道路(Road)级别的导航信息外,还能够提供车道(Lane)级别的导航信息。无论是在信息的丰富度还是信息的精度方面,都是远远高于传统导航地图的。
本文由社区开发者——陈光撰写,对看不见的“传感器”——高精度地图进行了详细讲解,希望这篇文章能给感兴趣的开发者带来更多帮助。
以下,ENJOY
谈论高精度地图时,将从三个方面展开。首先需要理性地了解高精度电子地图是什么,它和传统地图真正的区别在哪;其次再讨论高精度地图在无人车领域是如何应用的;最后结合高精度地图这个行业,谈谈高精度地图所遇到的挑战。
现阶段的高精度地图更多地被定义为:服务于无人驾驶的地图。相比于传统地图的“定性”描述来说,高精度地图是一种“定量”的描述。
以坡度为例,传统地图能提供的仅仅是前方有上(下)坡这个信息,但无法提供上(下)坡的角度;
以弯道为例,传统地图提供的仅仅是前方有个比较“急”的弯道,但无法提供弯道的曲率半径;
以路口为例,传统地图提供的仅仅是前方路口有红绿灯这个信息,并不知道红绿灯的具体位置在哪。
...
高精度地图可以提供传统地图提供不了的精确数据,这就是高精度地图的“定量”描述。
这些定量描述对人类驾驶员驾驶汽车来说没有多大帮助,因为人类是高度智能化的个体,拥有极高的图像识别、信息联想和学习能力,而这些能力是目前无人驾驶“大脑”所不具备的。为了弥补无人驾驶“大脑”还不够聪明的缺陷,高精度地图挺身而出。
高精度地图能够为无人驾驶提供的内容如下:
传统导航地图只能提供道路级(Road)的导航信息,如下图最左侧所示。道路R1连接着R2,R2同时连接着R3和R4。而高精度地图能够提供车道级(Lane)的导航信息,这种导航信息能够精确到车道的连接关系。如下图中间图所示Lane1连着Lane4,Lane4连着Lane8;Lane3连着Lane6和Lane7,Lane7连着Lane10。
车道级别的道路信息能够解决在路口转弯时,无人车不知道需要转多大的角度和保持多高车速的问题。如下图右侧绿虚线即为高精度地图为无人车提供的虚拟车道线中心,只要提前变道到正确车道,并沿着虚拟车道线所在的车道行驶,即可顺利通过路口。
先验信息是指某些可以提前采集且短时间内不会改变的信息。
仅依靠传感器的信息是很难感知车辆现在是处在高速公路上,还是处在普通城市道路上的;无限速牌的路段,车速最高可以开多快;前方道路的曲率;所处路段的GPS信号强弱。这些都是传感器遇到性能瓶颈时,无法实时得到的信息。而这些信息却都是客观存在,不会随外部事物的变化而变化,因此可以提前采集,并作为先验信息传给无人车做决策。
图为高精度地图可以为无人车提供的某些先验信息。包括道路曲率、航向、坡度和横坡角。这些信息对于无人车的安全性和舒适性都至关重要。
感兴趣点是POI(Point of Interest)的直译。在交通场景中能成为POI的东西有很多,比如:用中心点和多个外包络点描述的交通标志牌、地面标志、灯杆、红绿灯、收费站等;用一系列连续点所组成的链状信息描述的路沿、护栏、隧道、龙门架、桥等。
高精度地图精确记录了这些POI的经纬度和高度,只要给定无人车的精确位置(经纬高),即可将各个POI相对于自车的位置计算出来。将这些POI信息的相对位置逆向投影到车载前视图像上,如下图所示。
到这个时候,肯定有人问:高精度地图比传统地图多出如此多的信息,容量肯定很大吧?不大,现阶段的高精度地图容量并不比传统地图大多少,为什么呢?
因为现阶段的高精度地图完全是为无人驾驶服务的,而传统地图是为人类服务的。高精度地图只用关心与驾驶有关(道路、POI)的信息,并不关心周边的商场有几层、超市的面积有多大、小饭馆有多少家。而这类信息刚好是人类更关心的。正是因为侧重点不一样,所以在容量方面并不会有太大的差别。
下图从要素、系统、用途方面更为清晰地囊括了传统地图和高精度地图的侧重点:
高精度地图只是一个静态的数据,在实际使用时,不可能一开始就将全国的地图导入到系统中,这样不仅费时,而且会占用系统很多资源。高精度地图的供应商(图商)除了提供高精度地图外,还会提供一个叫做“地图引擎”的软件。由这个软件负责整个高精度地图的资源调度,无人车只需要告诉“地图引擎”现在的大致位置以及想要去的地方,“地图引擎”就会将这个过程中所要用到的高精度地图数据发布出来,供无人车使用。数据流如下图所示。
高精度地图的应用需要配合高精度的定位。
高精度定位,至少包含无人车当前的位置和航向角。位置是指无人车GPS天线安装位置所在的经度、纬度、高度;航向角,是指无人车车头的朝向与正北方向的夹角。
理论上,已知两个点的经纬高,即可计算出两个点的相对位置。那为什么还需要提供精确的航向信息呢?
如下图所示,如果无人车想要实现沿高精度地图车道线直线行驶,在有正确的经纬高和航向角情况下,车道线上的一系列点在无人车坐标系下的相对关系如下图(图中黑点)。根据车道线规划出来的轨迹(绿线)是与车道平行的直线。
试想一下,如果这时候航向值变得不准,比如偏了几十度。由于经纬高没有变化,因此车道线上的所有点距离无人车中心的距离是保持不变的,但这些点会以中心旋转。得到的车道线在无人车坐标系下的相对关系如下图。
根据此车道线规划出来的轨迹,会让无人车认为必须要转一个角度才能实现车道保持。最终造成的控制结果就是,无人车一直在原地打转。由此可见无人车的航向角是很重要的定位信息。
充分利用高精度地图的作用将对无人驾驶有如下帮助:
比如,在天气良好的情况下,车载传感器能够检测出车道线、障碍物、路沿、可通行空间等,但对于道路坡度、道路曲率的检测无能为力。这些数据有助于无人车的控制,刚好高精度地图可以提供。
再比如,当遇到暴雨/大雪/沙尘等恶劣天气,车载传感器很难感知到远处的障碍物、车道线信息。而定位+高精度地图的配合是可以提供诸如车道线、路沿和可通行空间这些信息的,增加系统的信息冗余。
在《无人驾驶技术入门(三)| 百度无人车传感器 GPS 深入剖析》中介绍过现有的无人车高精度定位在某些情况下也会出现定位不准的情况。因此仅依靠GPS的定位方案可靠性太差。
业内通用的定位方式是GPS+高精度地图+摄像机(激光雷达等)信息融合的定位方法。先看一个视频,了解一下业内是如何结合车载传感器信息做定位的。
首先根据GPS的数据(经纬高和航向)确定无人车大致处于哪条道路上,这个位置的可能与真实位置有5~10米的差距。
根据车载传感器检测的车道线(虚、实线)及道路边缘(路沿或护栏)的距离与高精地图提供的车道线及道路边缘做比对,然后修正无人车的横向定位。
根据车载传感器检测到的广告牌、红绿灯、墙上的标志、地上的标志(停止线、箭头等),与高精地图提供的同一道路特征(POI)进行匹配,进而修正纵向定位和航向。在没有检测到任何道路特征的情况下,可以通过航位推算进行短时间的位置推算。
无人车的定位算法通常采用粒子滤波的方法,需要多个计算周期后,定位结果才会收敛,进而提供一个相对稳定的定位结果。粒子滤波的算法原理我会在随后的系列文章中介绍。
高精度地图虽然好用,但目前还无法大规模地生产,大部分业内外处理还是由人工来完成标注和数据转化。而且仅仅靠地图公司的几十上百辆采集车在道路上采集,很难保证地图数据的实效性,即无法保证地图数据足够“新鲜”。
因此图商都希望能在量产车的前装摄像头上做文章,让这款摄像头除了具备L2以上自动驾驶能力外,还能够将采集图像预处理后的数据传到云端,实现数据的更新。当一个地点的实际情况被足够多的私家车检测到与地图不符时,由图商确认信息后,对地图进行相应的更新。这样一来,地图数据迭代地足够快,就能更好地服务于高精度地图生态和无人车了。
地图政策的这项挑战仅存在于国内。
高精度地图和国防息息相关,因此高精度地图的采集和使用在国内是受到严格限制的。目前我国仅有14家单位具有甲级地图测绘资质,这就意味着,只有这14家图商具有高精度地图采集和使用的权利。无人驾驶初创公司如果想使用高精度地图,要么强依赖这14家图商,要么在法律的红线上做研究。
由于测绘资质政策的存在,觉得国外的无人驾驶技术想要染指中国的市场,并不是一件简单的事情。即便是博世这种Tier1中的大佬,没有国内图商的帮助,想要扩张他们的无人驾驶技术,依然会寸步难行。
*《无人驾驶技术入门(三)| 百度无人车传感器 GPS 深入剖析》
https://zhuanlan.zhihu.com/p/32638633
以上是"看不见的“传感器”——高精度地图"的全部内容,更多话题讨论、技术交流可以扫描下方二维码添加『Apollo小哥哥』为好友,进开发者交流群。
* 以上内容为开发者原创,不代表百度官方言论。
内容来自知乎:
https://zhuanlan.zhihu.com/p/37885573,欢迎大家收藏点赞。已获开发者授权,原文地址请戳阅读原文。